// This file is part of OpenMeca, an easy software to do mechanical simulation.
//
// Author(s)    :  - Damien ANDRE  <openmeca@gmail.com>
//
// Copyright (C) 2012 Damien ANDRE
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

#include <cassert>
#include <iostream>
#include <QColorDialog>
#include <QPalette>

#include "OpenMeca/Gui/WidgetColor.hpp"
#include "OpenMeca/Gui/UserItemDialog.hpp"
namespace OpenMeca
{
  namespace Gui
  {
  
    WidgetColor::WidgetColor(QWidget* parent)
      :QWidget(parent),
       WidgetInterface<Util::Color>(*parent)
    {
      Ui::WidgetColor::setupUi(this);
      connect(pushButton_Color, SIGNAL( clicked() ), this, SLOT( NewColor() ) );
    }
  
    WidgetColor::~WidgetColor()
    {
    }

    void
    WidgetColor::Init()
    {
      UpdateBackground();
    }

    bool 
    WidgetColor::Check()
    {
      return true;
    }

 
    void 
    WidgetColor::NewColor()
    {
      QColor newColor = QColorDialog::getColor();
      if (newColor.isValid())
	{
	  GetCopy()=Util::Color(newColor);
	  UpdateBackground();
	}
     
    }


    void 
    WidgetColor::UpdateBackground()
    {
      QPalette palette = label_color->palette();
      QColor color = GetCopy().GetQColor();
      palette.setColor(QPalette::Button, color);
      label_color->setPalette(palette);
    }

  }
}
